const path = require('path'); // CommonJs
const {userData} = require('./src/mock/mock')
module.exports = {
    devServer: {
        port: 4000,
        // proxy: 'http://localhost:8080',
        before(app) {
            app.get('/login', (req,res) => {
                // 取出传输过来的值 {username:'lll', password: '123'}
                const {username,password} = req.query;
                const bool = userData.some(item => item.user+'' === username+'' && item.pass+'' === password+'')
                if(bool) {
                    res.send({
                        code:1,
                        data: {
                            token: "123124123123123",
                            username,
                        }
                    })
                } else {
                    res.send({
                        code:-1,
                        message: '请检查账号密码'
                    })
                }
            })
        }
    },
    // webpack 配置进行更细粒度的修改  https://cli.vuejs.org/zh/config/#chainwebpack
    chainWebpack: (config)=>{
        //修改文件引入自定义路径
        config.resolve.alias
            .set('@', path.resolve(__dirname, './src'))
            .set('@c', path.resolve(__dirname, './src/components'))
            .set('@css', path.resolve(__dirname, './src/assets/css'))
            .set('@img', path.resolve(__dirname, './src/assets/img'))
            .set('@js', path.resolve(__dirname, './src/assets/js'))
        // 1. 修改svg规则，排除icons目录下的svg文件
        config.module
            .rule('svg')
            // 排除icon目录
            // exclude 排除 add 向数组里插入值
            .exclude.add(path.resolve(__dirname + '/src/icons'))
        // 2. 新增规则，仅打包icons目录下的svg
        config.module
            .rule('icons') // 规则名称 有则取 无则添加
            .test(/\.svg$/) // 匹配规则
            // 使用了add之后 会离开当前链的上下文 所以需要end再返回上一步
            .include.add(path.resolve(__dirname + '/src/icons')) // 仅匹配icons 下的 svg
            .end()
            .use('svg-sprite-loader')
            .loader('svg-sprite-loader').options({
                symbolId: 'icon-[name]'
            })
    },

}